// !@#$McCaBe-InStRuMeNtAtIoN$#@!
// Instrumented with the McCabe Java Parser
// Version: 8.1.0.1 - 20110309
// Using Path Vector Instrumentation
// Date: Sun Apr 01 2012 20:40:17
package EventManager;

import com.mccabe.*;


class Request_c5745004558c52246aaaf02ed9a46bca {
    static java.lang.Object info[];
    static {
        info = new java.lang.Object[2];
        info[0] = new Integer(-1);
        info[1] = new String("R:\\yu\\Concordia\\SOEN 344 Design II\\Term Assignment\\Code Repo\\trunk\\Iteration 3\\ERS\\src\\EventManager\\Request.java");
    }
}


/** Abstract request class, the absolute top of the hierarchy.
 * 
 * @author Yury Kitaev
 *
 */
public abstract class Request 
{
	// Status. Refer to RequestStatus for enum details
	private RequestStatus status;

	public Request() 
	{
		super();
int _mcFreq_e77576001d002bac737b3e02bf7fc2ab[] = PathVec_ERS_Iter3.getIntArray(0);
PathVec_ERS_Iter3.releaseIntArray();
PathVec_ERS_Iter3.enterConstructorWithECC(Request_c5745004558c52246aaaf02ed9a46bca.info,0,_mcFreq_e77576001d002bac737b3e02bf7fc2ab,0);

		this.status = RequestStatus.Pending;
	}
	
	/**
	 * Processes the request and updates itself.
	 */
	public abstract void process();
	
	/**
	 * Status of the request.
	 * @return Sustained if the request was approved, Refused if not, Pending if it is still under consideration by the system.
	 */
	public RequestStatus getStatus() 
	{
int _mcFreq_7f742ca96541d94fffe30a0eef854cf1[] = new int[1];
PathVec_ERS_Iter3.enterMethod(Request_c5745004558c52246aaaf02ed9a46bca.info,1,_mcFreq_7f742ca96541d94fffe30a0eef854cf1,0);

		return status;
	}

	/**
	 * Sets the status of the request.
	 * @param status Sustained if the request was approved, Refused if not, Pending if it is still under consideration by the system.
	 */
	public void setStatus(RequestStatus status) 
	{
int _mcFreq_e0203a17d8cd2dfc2f44aa44d90f14fd[] = new int[1];
PathVec_ERS_Iter3.enterMethod(Request_c5745004558c52246aaaf02ed9a46bca.info,2,_mcFreq_e0203a17d8cd2dfc2f44aa44d90f14fd,0);

		this.status = status;
	}

	@Override
	public String toString() 
	{
int _mcFreq_7eeff6013a7086564a614dff2ccfe837[] = new int[1];
PathVec_ERS_Iter3.enterMethod(Request_c5745004558c52246aaaf02ed9a46bca.info,3,_mcFreq_7eeff6013a7086564a614dff2ccfe837,0);

		return "Abstract Request [status=" + status + "]";
	}
	
	
}
